/**
 *	6.编写一个函数从字符串中提取子字符串，函数原型如下，从src数组其实位置向后偏移start个字符的位置开始，
 *	最多复制len个非NUL字符，dst必须以NUL字符结尾，函数的返回值是存储于dst数组中的字符串长度，
 *	如果start所指定的位置超过了src的尾部，或者start，len的值为负，那么复制到dst数组的字符串为空
**/

#include <stdio.h>
#include <string.h>

int sub_str(char dst[], char src[], int start, int len);

int main()
{
	char str[] = "This is the first line.";	
	char cstr[10];

	sub_str(cstr, str, 12, 5);
	
	printf("str = %s\n", str);
	printf("cstr = %s\n", cstr);

	return 0;
}

int sub_str(char dst[], char src[], int start, int len)
{
	int i;
	int src_len = strlen(src);
	if(start < 0 || len < 0 || start >= src_len)
	{
		dst[0] = '\0';
		return 0;
	}
	else
	{
		i = 0;
		while(src[start + i] != '\0' && len)
		{
			dst[i] = src[start + i];
			i++;
			len--;
		}	
	}
	dst[i] = '\0';
	return i;
}

